    /**
     * Copyright (c) 2022 Huawei Device Co., Ltd.
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     * http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */

case panda_file::SourceLang::ECMASCRIPT: {
    auto jsMethod = static_cast<ecmascript::JSMethod *>(method);
    if (jsMethod->GetProfileSize() == 0) {
        return;
    }
    auto profId = inst.GetProfileId();
    if (profId == -1) {
        return;
    }
    ASSERT(static_cast<uint32_t>(profId) < jsMethod->GetProfileSize());
    // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    auto profData = jsMethod->GetProfilingVector() + profId;
    ASSERT(profiling::GetProfileKind(inst.GetOpcode()) == profiling::ProfilingKind::CALL);
    auto profile = ecmascript::CallProfile::FromBuffer(profData);
    ASSERT(profile != nullptr);
    auto *profileTable = static_cast<ecmascript::EcmaVM *>(vm)->GetEcmaCallProfileTable();
    profile->Clear(profileTable);
}
